﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;

namespace Ruandao
{
    /// <summary>
    /// 未知的运行错误。
    /// 一般是在调用堆栈的浅层发生，比如在应用程序的业务层。
    /// 对于功能健壮的应用系统，该异常的发生几率应该很低。发生该异常，
    /// 说明系统运行出现了故障，系统的用户通过正确操作期望完成的功能
    /// 无法实现。
    /// 这类异常的主要处理方式日志记录，通知系统的技术维护
    /// 人员。
    /// </summary>
    [Serializable]
    public class RunningException
        : Exception, ISerializable
    {
        /// <summary>
        /// 默认构造。
        /// </summary>
        public RunningException()
            :base()
        { }

        /// <summary>
        /// 构造指定消息的异常。
        /// </summary>
        /// <param name="message">异常消息。</param>
        public RunningException(string message)
            : base(message)
        { }

        /// <summary>
        /// 构造异常，指定异常信息和引发该异常的内部异常。
        /// </summary>
        /// <param name="message">异常信息。</param>
        /// <param name="inner">内部异常。</param>
        public RunningException(string message, Exception inner)
            : base(message, inner)
        { }

        private RunningException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        { }

        void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
        {
            base.GetObjectData(info, context);
        }
    }
}
